package cdu.sl.domain.vo;

import cdu.sl.domain.po.ClassMember;
import cdu.sl.domain.po.StudySet;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 班级视图对象
 */
@Data
@ApiModel(description = "班级详情视图对象")
public class ClassGroupVO {

    @ApiModelProperty(value = "班级ID", example = "1234567890")
    private Long id;

    @ApiModelProperty(value = "创建者ID", example = "9876543210")
    private Long creatorId;

    @ApiModelProperty(value = "创建者用户名", example = "teacher_zhang")
    private String creatorName;

    @ApiModelProperty(value = "班级名称", example = "英语学习小组")
    private String name;

    @ApiModelProperty(value = "班级描述", example = "这是一个英语单词学习小组")
    private String description;

    @ApiModelProperty(value = "班级封面图片", example = "https://example.com/cover.jpg")
    private String coverImage;

    @ApiModelProperty(value = "学校/组织名称", example = "成都大学")
    private String schoolName;

    @ApiModelProperty(value = "年级/学期", example = "2023年秋季学期")
    private String term;

    @ApiModelProperty(value = "班级加入码", example = "ABC123")
    private String joinCode;

    @ApiModelProperty(value = "是否需要批准加入", example = "false")
    private Boolean requireApproval;

    @ApiModelProperty(value = "成员数量", example = "25")
    private Integer memberCount;

    @ApiModelProperty(value = "班级状态：0-活跃，1-已归档", example = "0")
    private Integer status;

    @ApiModelProperty(value = "创建时间", example = "2023-01-01 12:00:00")
    private LocalDateTime createdAt;

    @ApiModelProperty(value = "更新时间", example = "2023-01-02 13:30:00")
    private LocalDateTime updatedAt;

    @ApiModelProperty(value = "班级内学习集列表")
    private List<StudySet> studySetList;

    @ApiModelProperty(value = "是否为创建者")
    private Boolean isCreator;

    @ApiModelProperty(value = "当前用户在班级的状态 0:待审核 1:已加入 2:已移除 3:已驳回")
    private Integer currentUserStatus;

    @ApiModelProperty(value = "班级成员列表")
    private List<ClassMember> classMemberList;

} 